package com.weixing.mall.provider.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weixing.mall.provider.model.domain.Role;
import com.weixing.mall.provider.model.dto.sys.SysRoleDto;
import com.weixing.mall.provider.model.enums.sys.SysFlag;
import com.weixing.mall.provider.model.query.SysRoleQuery;
import com.weixing.mall.provider.model.vo.sys.SysRoleEditVo;
import com.weixing.mall.provider.model.vo.sys.SysRoleFormVo;
import com.weixing.mall.provider.model.vo.sys.SysRoleVo;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author Small
 * @since 2019-11-18
 */
public interface IRoleService extends IService<Role> {

    IPage selectOfPage(Page initMpPage, SysRoleQuery sysRoleQuery);

    Role selectByRoleName(String roleName, Integer sysFlag);

    Role selectByRoleCode(String roleCode, Integer sysFlag);

    void save(SysRoleDto sysRoleDto);

    boolean checkRoleUsed(long id);

    void deleteById(long id);

    SysRoleEditVo selectSysRoleEditVoById(long id);

    List<SysRoleFormVo> selectSysRoleFormVoList(SysFlag sysFlag);

    List<Role> selectSysRoleByUserId(long userId, SysFlag sysFlag);

    List<SysRoleVo> selectSysAll();
}
